import PluginsLoader from '../../lib/plugins/loader.js';

export class CeShenGao extends plugin {
  constructor() {
    super({
      name: '测身高',
      dsc: '光遇好友码身高查询工具',
      event: 'message',
      priority: 5,
      rule: [
        {
          reg: "^#测身高\\s+([^\\s]+)$",
          fnc: 'ceShenGao',
          permission: 'all'
        }
      ]
    });
  }

  async ceShenGao(e) {
    const match = e.msg.match(/^#测身高\s+([^\\s]+)$/);
    if (!match) return e.reply("格式错误！请使用#测身高 [好友码]");
    
    const code = match[1].trim();
    if (!code) return e.reply("请输入有效的好友码");

    try {
      // 发起API请求
      const res = await fetch(`https://api.t1qq.com/api/sky/sc/shape/invite?key=JoGks80gdMgP2jJftKVXKe4o1d&code=${encodeURIComponent(code)}`);
      const data = await res.json();

      // 解析结果
      if (data.code !== 200) {
        return e.reply(`查询失败：${data.msg || '未知错误'}`);
      }

      // 整理数据展示
      const heightData = data.data;
      const scoreData = data.score;
      const adornData = data.adorn;
      
      const replyMsg = [
        `📊 身高数据（scale: ${heightData.scale}）`,
        `▫ 当前身高：${heightData.currentHeight} (${heightData.heightDesc})`,
        `▫ 身高范围：${heightData.minHeight} ~ ${heightData.maxHeight}`,
        `\n💯 评分详情`,
        `▫ 比例分：${scoreData.scaleScore}`,
        `▫ 当前身高分：${scoreData.currentHeightScore}`,
        `\n🎭 装扮信息`,
        `▫ 发型：${adornData.hair}`,
        `▫ 面具：${adornData.mask}`,
        `▫ 手持物：${adornData.prop}`,
      ].join('\n');

      await e.reply(replyMsg);
      logger.info(`[测身高]成功查询：${code}，用户：${e.user_id}`);

    } catch (error) {
      await e.reply("网络请求失败，请检查好友码或稍后重试");
      logger.error(`[测身高]API异常：${error.message}`);
    }
  }
}